GtkAssistantPageType type;
guint complete : 1;
guint complete_set : 1;
+ guint has_padding : 1;
gchar *title;
CHILD_PROP_PAGE_TITLE,
CHILD_PROP_PAGE_HEADER_IMAGE,
CHILD_PROP_PAGE_SIDEBAR_IMAGE,
- CHILD_PROP_PAGE_COMPLETE
+ CHILD_PROP_PAGE_COMPLETE,
+ CHILD_PROP_HAS_PADDING
};
enum
FALSE,
G_PARAM_READWRITE));
+ gtk_container_class_install_child_property (container_class, CHILD_PROP_HAS_PADDING,
+ g_param_spec_boolean ("has-padding", P_("Has padding"), P_("Whether the assistant adds padding around the page"),
+ TRUE, G_PARAM_READWRITE));
+
/* Bind class to template
*/
gtk_widget_class_set_template_from_resource (widget_class,
gtk_assistant_set_page_complete (GTK_ASSISTANT (container), child,
g_value_get_boolean (value));
break;
+ case CHILD_PROP_HAS_PADDING:
+ gtk_assistant_set_page_has_padding (GTK_ASSISTANT (container), child,
+ g_value_get_boolean (value));
+ break;
default:
GTK_CONTAINER_WARN_INVALID_CHILD_PROPERTY_ID (container, property_id, pspec);
break;
g_value_set_boolean (value,
gtk_assistant_get_page_complete (assistant, child));
break;
+ case CHILD_PROP_HAS_PADDING:
+ g_value_set_boolean (value,
+ gtk_assistant_get_page_has_padding (assistant, child));
+ break;
default:
GTK_CONTAINER_WARN_INVALID_CHILD_PROPERTY_ID (container, property_id, pspec);
break;
page_info = g_slice_new0 (GtkAssistantPage);
page_info->page = page;
page_info->regular_title = gtk_label_new (NULL);
+ page_info->has_padding = TRUE;
gtk_widget_set_no_show_all (page_info->regular_title, TRUE);
page_info->current_title = gtk_label_new (NULL);
gtk_widget_set_no_show_all (page_info->current_title, TRUE);
return page_info->complete;
}
+/**
+ * gtk_assistant_set_page_has_padding:
+ * @assistant: a #GtkAssistant
+ * @page: a page of @assistant
+ * @has_padding: whether this page has padding
+ *
+ * Sets whether the assistant is adding padding around
+ * the page.
+ *
+ * Since: 3.18
+ */
+void
+gtk_assistant_set_page_has_padding (GtkAssistant *assistant,
+ GtkWidget *page,
+ gboolean has_padding)
+{
+ GtkAssistantPage *page_info;
+ GList *child;
+
+ g_return_if_fail (GTK_IS_ASSISTANT (assistant));
+ g_return_if_fail (GTK_IS_WIDGET (page));
+
+ child = find_page (assistant, page);
+
+ g_return_if_fail (child != NULL);
+
+ page_info = (GtkAssistantPage*) child->data;
+
+ if (page_info->has_padding != has_padding)
+ {
+ page_info->has_padding = has_padding;
+
+ g_object_set (gtk_widget_get_parent (page),
+ "margin", has_padding ? 12 : 0,
+ NULL);
+
+ gtk_container_child_notify (GTK_CONTAINER (assistant), page, "has-padding");
+ }
+}
+
+/**
+ * gtk_assistant_get_page_has_padding:
+ * @assistant: a #GtkAssistant
+ * @page: a page of @assistant
+ *
+ * Gets whether page has padding.
+ *
+ * Returns: %TRUE if @page has padding
+ * Since: 3.18
+ */
+gboolean
+gtk_assistant_get_page_has_padding (GtkAssistant *assistant,
+ GtkWidget *page)
+{
+ GtkAssistantPage *page_info;
+ GList *child;
+
+ g_return_val_if_fail (GTK_IS_ASSISTANT (assistant), FALSE);
+ g_return_val_if_fail (GTK_IS_WIDGET (page), FALSE);
+
+ child = find_page (assistant, page);
+
+ g_return_val_if_fail (child != NULL, TRUE);
+
+ page_info = (GtkAssistantPage*) child->data;
+
+ return page_info->has_padding;
+}
+
/**
* gtk_assistant_update_buttons_state:
* @assistant: a #GtkAssistant